package ymy;

import java.util.*;

/**
 |--------------------------------------------------------|
 |            356--533                 890--1067          |
 |    |521--------------694|    |1217------------1390|    |
 |  2560                 2794  3028                3262   |
 |2019|                    |2257|                    |2496|
 |  | |                    |  | |                    | |  |
 |  | |                    |  | |                    | |  |
 |1782|                    |2020|                    |2258|
 |  2327                 2561  2795                3029   |
 |    |347--------------520|    |1043------------1216|    |
 |           178--355                   712--889          |
 |    |173--------------346|    |869-------------1042|    |
 |   1624                1858  2092                2326   |
 |1305|                    |1543|                    |1781|
 |  | |                    |  | |                    |  | |
 |  | |                    |  | |                    |  | |
 |1068|                    |1306|                    |1544|
 |   1391                1625  1859                2093   |
 |    |0----------------172|    |695--------------868|    |
 |           0--177                    534--711           |
 |--------------------------------------------------------|
 */
public class SpecificConfig {

    private final static Random random = new Random(System.currentTimeMillis());

    // 算法参数
    public final static double HELLO_PERIOD = 0.1;
    public final static double SAMPLE_PERIOD = 1.0;
    public final static double PROCEED_PERIOD = 5.0;
    public final static double SIMU_DURATION = 20.0;

    // 车辆信息参数==递增关系
    public final static int[] ODEVTIY = {0, 0, 1, 1};

    public final static int[][][] MOVE_VEHICLES_ARRAY = {
            {{345, 355}, {1533, 1543}, {2020, 2030}, {712, 722}}, /*20*/
            {{335, 355}, {1523, 1543}, {2020, 2040}, {712, 732}}, /*40*/
            {{325, 355}, {1513, 1543}, {2020, 2050}, {712, 742}}, /*60*/
            {{315, 355}, {1503, 1543}, {2020, 2060}, {712, 752}}, /*80*/
            {{305, 355}, {1493, 1543}, {2020, 2070}, {712, 762}}, /*100*/
            {{295, 355}, {1483, 1543}, {2020, 2080}, {712, 772}}, /*120*/
            {{285, 355}, {1473, 1543}, {2020, 2090}, {712, 782}}, /*140*/
            {{275, 355}, {1463, 1543}, {2020, 2100}, {712, 792}}, /*160*/
            {{265, 355}, {1453, 1543}, {2020, 2110}, {712, 802}}, /*180*/
            {{255, 355}, {1443, 1543}, {2020, 2120}, {712, 812}}  /*200*/
    };

    public final static int[][][] PARK_VEHICLES_ARRAY = {
            {{500, 520}, {326, 346}, {1043, 1063}, {869, 889}, {2561, 2581}, {2795, 2815}, {1838, 1858}, {2072, 2092}}, /*160*/
            {{495, 520}, {321, 346}, {1043, 1068}, {869, 894}, {2561, 2586}, {2795, 2820}, {1833, 1858}, {2067, 2092}}, /*200*/
            {{490, 520}, {316, 346}, {1043, 1073}, {869, 899}, {2561, 2591}, {2795, 2825}, {1828, 1858}, {2062, 2092}}, /*240*/
            {{485, 520}, {311, 346}, {1043, 1078}, {869, 904}, {2561, 2596}, {2795, 2830}, {1823, 1858}, {2057, 2092}}, /*280*/
            {{480, 520}, {306, 346}, {1043, 1083}, {869, 909}, {2561, 2601}, {2795, 2835}, {1818, 1858}, {2052, 2092}}, /*320*/
            {{475, 520}, {301, 346}, {1043, 1088}, {869, 914}, {2561, 2606}, {2795, 2840}, {1813, 1858}, {2047, 2092}}, /*360*/
            {{470, 520}, {296, 346}, {1043, 1093}, {869, 919}, {2561, 2611}, {2795, 2845}, {1808, 1858}, {2042, 2092}}, /*400*/
    };

    public static int[][] MOVE_VEHICLES_OV = null;
    public static int[][] PARK_VEHICLES_OV = null;

    // 车辆信息参数==随机关系
    public final static int PARK_VEHICLES_MAX = 400;
    public final static int PARK_VEHICLES_MIN = 80;
    public final static int PARK_STEP = 40;

    public final static int MOVE_VEHICLES_MAX = 240;
    public final static int MOVE_VEHICLES_MIN = 20;
    public final static int MOVE_STEP = 20;

    public static int MOVE_VEHICLES = 0;
    public static int PARK_VEHICLES = 0;

    public final static int[] PARK_VEHICLES_IDS = {
            355, 957, 1989, 2894,
            419, 1154, 2088, 2679,
            299, 1187, 2066, 2597,
            338, 1001, 2072, 2754,
            387, 942, 1841, 2603,
            286, 958, 1998, 2762,
            431, 1205, 1685, 2865,
            481, 1122, 1983, 2858,
            442, 1020, 1959, 2729,
            447, 928, 1955, 2896,
            402, 898, 2015, 2887,
            177, 1050, 2054, 2636,
            213, 1185, 1634, 2749,
            329, 1075, 1727, 2941,
            323, 989, 1808, 2802,
            294, 985, 1992, 2966,
            277, 908, 1935, 2962,
            499, 1053, 2067, 2686,
            212, 1017, 1656, 2973,
            407, 1022, 2045, 2651,
            418, 1209, 1861, 2803,
            237, 885, 2049, 2790,
            354, 932, 1638, 2638,
            399, 1056, 1921, 2886,
            185, 1167, 1840, 2627,
            352, 1070, 1881, 2835,
            498, 1206, 2038, 3010,
            495, 922, 2065, 2969,
            232, 964, 1657, 2972,
            270, 1193, 2077, 2788,
            389, 1039, 1807, 2848,
            507, 1008, 1907, 2672,
            472, 1076, 1672, 2633,
            373, 907, 1920, 2930,
            305, 1169, 2000, 2842,
            210, 1182, 1839, 2665,
            314, 1029, 1639, 2613,
            490, 1190, 1872, 2947,
            218, 1201, 1633, 2726,
            193, 1181, 1709, 2943,
            364, 948, 1874, 2974,
            196, 946, 1916, 2756,
            219, 883, 1642, 2709,
            288, 1052, 1680, 2960,
            243, 1172, 1912, 2736,
            209, 1102, 1960, 2588,
            333, 924, 1876, 2978,
            293, 916, 1675, 2646,
            470, 1138, 2031, 2927,
            224, 1081, 1980, 2956,
            176, 894, 1687, 2907,
            409, 889, 1631, 3000,
            462, 1044, 2042, 2589,
            216, 1033, 1977, 2990,
            180, 1203, 2028, 2794,
            215, 906, 2060, 2822,
            252, 886, 1764, 2961,
            179, 1060, 2062, 2820,
            315, 987, 1673, 2812,
            480, 949, 1850, 2631,
            301, 1170, 2040, 2806,
            280, 1148, 2055, 2629,
            413, 1189, 1721, 2795,
            320, 978, 1810, 2819,
            509, 1214, 1696, 2681,
            274, 1057, 1825, 2921,
            482, 1073, 2069, 2844,
            203, 951, 1865, 2839,
            467, 1184, 1933, 2813,
            351, 1093, 1974, 2656,
            239, 971, 1837, 3008,
            517, 1063, 1832, 2950,
            191, 1036, 1805, 2576,
            378, 1197, 1824, 2611,
            488, 1177, 1756, 3009,
            324, 1213, 1873, 2909,
            199, 1045, 2053, 2616,
            327, 1127, 1950, 3014,
            449, 1195, 1886, 2750,
            230, 1150, 1870, 2734,
            261, 1094, 2014, 2662,
            408, 970, 1684, 2903,
            357, 927, 1911, 2585,
            479, 945, 1635, 2765,
            289, 965, 1739, 2728,
            273, 1198, 2079, 2808,
            459, 1168, 1860, 2643,
            319, 1066, 1797, 2892,
            214, 1088, 1997, 2953,
            450, 935, 1770, 2621,
            259, 1087, 1666, 2685,
            336, 1042, 1762, 2830,
            332, 1199, 1803, 2620,
            377, 1007, 1659, 2655,
            379, 872, 2034, 2878,
            249, 1163, 1728, 2599,
            362, 1028, 1716, 2916,
            417, 1129, 1967, 2735,
            415, 1212, 1648, 3012,
            443, 1125, 1918, 2663
    };

    public final static int[] MOVE_VEHICLES_IDS = {
            280, 871, 1418, 2083,
            252, 765, 1410, 2101,
            240, 725, 1354, 2181,
            336, 719, 1396, 2139,
            216, 785, 1542, 2155,
            294, 877, 1316, 2111,
            328, 797, 1390, 2073,
            182, 767, 1490, 2191,
            224, 843, 1508, 2199,
            282, 717, 1420, 2121,
            190, 731, 1404, 2189,
            324, 873, 1530, 2171,
            272, 827, 1444, 2095,
            198, 755, 1518, 2229,
            268, 735, 1512, 2249,
            304, 791, 1320, 2141,
            286, 751, 1442, 2039,
            352, 795, 1488, 2053,
            226, 727, 1338, 2223,
            288, 821, 1526, 2035,
            342, 847, 1310, 2025,
            218, 723, 1536, 2221,
            194, 853, 1460, 2151,
            290, 829, 1458, 2137,
            248, 875, 1376, 2031,
            244, 783, 1500, 2143,
            254, 769, 1384, 2061,
            344, 879, 1428, 2091,
            242, 715, 1422, 2037,
            210, 859, 1378, 2187,
            258, 741, 1356, 2107,
            348, 835, 1328, 2167,
            232, 803, 1402, 2247,
            338, 817, 1464, 2045,
            326, 855, 1364, 2057,
            314, 787, 1472, 2047,
            228, 807, 1446, 2069,
            296, 815, 1438, 2219,
            284, 771, 1522, 2161,
            316, 775, 1326, 2043,
            188, 839, 1400, 2209,
            186, 747, 1514, 2185,
            192, 863, 1370, 2115,
            270, 831, 1366, 2241,
            256, 749, 1348, 2243,
            230, 761, 1374, 2071,
            264, 811, 1482, 2159,
            308, 887, 1318, 2233,
            212, 713, 1470, 2165,
            234, 837, 1486, 2203,
            350, 823, 1306, 2051,
            354, 739, 1394, 2197,
            206, 857, 1534, 2099,
            262, 753, 1430, 2113,
            266, 733, 1312, 2195,
            236, 801, 1466, 2021,
            330, 729, 1380, 2251,
            180, 845, 1346, 2237,
            200, 867, 1476, 2157,
            340, 825, 1502, 2213
    };

    /*
    static {
        for (int p = SpecificConfig.PARK_VEHICLES_MIN; p <= SpecificConfig.PARK_VEHICLES_MAX; p += SpecificConfig.PARK_STEP) {
            System.out.println("PARK COUNT = " + p);
            ResourceStore.getParkVehicleIds(p);
        }

        for (int m = SpecificConfig.MOVE_VEHICLES_MIN; m <= SpecificConfig.MOVE_VEHICLES_MAX; m += SpecificConfig.MOVE_STEP) {
            System.out.println("MOVE COUNT = " + m);
            ResourceStore.getMoveVehicleIds(m);
        }
    }
    */
}
